
package com.femass.view;

import com.femass.controller.GestaoInscricoes;
import com.femass.model.Evento;
import com.femass.model.Inscricao;
import com.femass.model.InscricaoPK;
import com.femass.model.Participante;
import com.femass.repository.EventoRepository;
import com.femass.repository.ParticipanteRepository;
import com.femass.util.FacesUtil;
import com.femass.util.Repositorios;
import java.util.Date;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;

/**
 *
 * @author daureo
 */
@ManagedBean
public class InscreverEmEventoBean {
    private Repositorios repositorios = new Repositorios();
    private EventoRepository eventoRepo = this.repositorios.getEventos();
    private ParticipanteRepository participanteRepo = this.repositorios.getParticipantes();
    private GestaoInscricoes gestaoInscricoes = new GestaoInscricoes();
    private List<Evento> eventosAtivos = this.eventoRepo.ativos();
    private Inscricao inscricao = new Inscricao();
    private InscricaoPK inscricaoPK = new InscricaoPK();
    private String numInscricao;
    private Evento eventoSelecionado;

    public void salvar(){
        Participante participante = this.participanteRepo.porInscricao(new Integer(numInscricao));
        if(participante != null){
            participante.setSituacao('0');
            this.inscricao.setParticipante(participante);
            this.inscricao.setEvento(getEventoSelecionado());
            this.inscricao.setInscricaoPK(inscricaoPK);
            this.inscricao.setData(new Date());
            this.inscricaoPK.setEventocod(this.eventoSelecionado.getCod());
            this.inscricaoPK.setParticipantecod(participante.getCod());
            
            this.gestaoInscricoes.salvar(this.inscricao);
            
            this.numInscricao = new String();
            this.eventoSelecionado = null;
            this.inscricao = new Inscricao();
            this.inscricaoPK = new InscricaoPK();
            
        } else {
            FacesUtil.adicionarMensagem(FacesMessage.SEVERITY_ERROR, "Número de Inscrição Inexistente!");
        }
    }
    
    public List<Evento> getEventosAtivos() {
        return eventosAtivos;
    }

    public void setEventosAtivos(List<Evento> eventosAtivos) {
        this.eventosAtivos = eventosAtivos;
    }

    public Inscricao getInscricao() {
        return inscricao;
    }

    public void setInscricao(Inscricao inscricao) {
        this.inscricao = inscricao;
    }

    public InscricaoPK getInscricaoPK() {
        return inscricaoPK;
    }

    public void setInscricaoPK(InscricaoPK inscricaoPK) {
        this.inscricaoPK = inscricaoPK;
    }

    public String getNumInscricao() {
        return numInscricao;
    }

    public void setNumInscricao(String numInscricao) {
        this.numInscricao = numInscricao;
    }

    public Evento getEventoSelecionado() {
        return eventoSelecionado;
    }

    public void setEventoSelecionado(Evento eventoSelecionado) {
        this.eventoSelecionado = eventoSelecionado;
    }
    
    
}
